package com.design.patterns.behavioralModel.prototype;

import com.design.patterns.behavioralModel.prototype.bean.Login;

/**
 * 原型
 * 原型模式使用的地方非常少，对于实际使用方式我们不做讨论，现只关心实现和原理
 * 目的：用原型实例指定创建对象的种类，并且通过拷贝这些原型创建新的对象。
 */
public class PrototypeMain {
    public static void main(String[] args) {
        /**
         * 我们建立JavaBean（Login）
         * 然后再Bean中新增copy方法建立原型
         */
        Login login = new Login();
        login.setName("testpy");
        login.setNickName("testpyA");
        login.setPassword("123456");
        login.setAge(18);
        /**
         * 拷贝原型后建立新的对象
         */
        Login copy = login.copy();
        /**
         * 测试是不是新的对象
         */
        System.out.println(login == copy);
        System.out.println("login" + login.toString());
        System.out.println("copy" + copy.toString());
    }
}
